#pragma once
#include "Element_Base.h"

class Element_plane82 :
    public::Element_Base
{
protected:
    Eigen::VectorXd ci;
    Eigen::VectorXd si; 
    Eigen::VectorXd wi;

    void Gaussian_integral2D();
    void Gaussian_integral2D_2();
    void Gaussian_integral2D_3();
    void get_N(double c, double s, Eigen::VectorXd& N);
    void get_dNcs(double c, double s, Eigen::VectorXd& dNc, Eigen::VectorXd& dNs);
    double get_csyz(double c, double s, Eigen::Matrix2d& cs_yz);
    double get_dNyz(double c, double s, Eigen::VectorXd& dNy, Eigen::VectorXd& dNz);
    double get_y(Eigen::VectorXd& N);
    double get_z(Eigen::VectorXd& N);
};

